#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
const int N = 2e5 + 10;
const double esp = 1e-7;
int a[N];
int n;
vector<double>ans;
bool check(double x)
{
	ans.clear();
	ans.push_back(a[1] + x);
	for (int i = 2; i <= n; i++) {
		if (a[i] > ans.back() + x) {
			if (ans.size() == 3)return 0;
			ans.push_back(a[i] + x);
		}
	}
	return 1;
}
int main()
{
	cin >> n;
	for (int i = 1; i <= n; i++) {
		scanf("%d", &a[i]);
	}
	sort(a + 1, a + n + 1);
	double l = 0, r = 5e8;
	while (r - l > esp) {
		double mid = (l + r) / 2;
		if (check(mid))r = mid;
		else l = mid;
	}
	printf("%lf\n", l);
	check(r);
	while (ans.size() < 3)ans.push_back(0);
	for (auto x : ans) {
		printf("%lf ", x);
	}
	return 0;
}